package question9;

/**
 * @FileName Test
 * @Description
 * @Author Sword
 * @date 2024-12-04
 **/
public class Test {
    public static void main(String[] args) {
        //一个数如果恰好等于它的因子之和，这个数就称为完数。编写程序求 1000以内的所有完数。
        System.out.println("1000 以内的完数有：");
        for (int i = 1; i < 1000; i++) {
            if (isPerfectNumber(i)) {
                System.out.println(i);
            }
        }
    }

    // 判断一个数是否为完数
    public static boolean isPerfectNumber(int num) {
        int sum = 0;
        // 找到 num 的因子并求和
        for (int i = 1; i <= num / 2; i++) {
            if (num % i == 0) {
                sum += i;
            }
        }
        // 判断和是否等于 num
        return sum == num;
    }
}

